#include <iostream>
#include <vector>
#include <random>
#include <deque>
#include <algorithm>
using namespace std;

void operate(const deque<int>& d,int& num);
//5个选手，10个评委打分，去掉最低分最高分，求每个选手的平均分
//先有一个person类，成员是name和average_sorce，然后把Person放到vector里面
class Person{
    public:
        Person(string name,int sorce)
        :_name(name)
        ,_sorce(sorce)
    {

    }
    friend ostream& operator<<(ostream & os,const Person & p);
    string _name;
    int _sorce;
};

ostream& operator<<(ostream & os,const Person & p){
    os<<p._name<<" "<<p._sorce<<endl;
    return os;
}
void person_insert(vector<Person> & vec){
    string a="ABCDE";
    for(auto ele:a){
    string name="选手";
    int sorce=0;
    name+=ele;
    vec.push_back(Person(name,sorce));
    }
}
//然后插入成绩思路是整一个for循环，然后在循环里面直接算出
//平均分，插入到vector里面，每个for循环里面建立一个deque队列用sort算法排序完成
//以后，去除最高最低分，然后算平均分
void sorce_insert(vector<Person> &vec){
    for(int i=0;i<5;++i){
    deque<int> sorce;
    for(int i=0;i<10;++i){
    int sorce2=::rand()%40+60;
    sorce.push_back(sorce2); 
    }
    sort(sorce.begin(),sorce.end());
    sorce.pop_back();
    sorce.pop_front();
    int aver=0;
    operate(sorce,aver);
    
    //得到平均成绩，放到vector里面
    vec[i]._sorce=aver;
    }
}
void operate(const deque<int>& d,int& num){
    for(int i=0;i<8;i++){
    num+=d[i];
    }
    num=num/8;
}
void test(){
    srand(time(0));
    vector<Person> vec;
    person_insert(vec);
    sorce_insert(vec);
    for(auto ele:vec){
        cout<<ele<<endl;
    }
}
int main(int argc, char * argv[]){
    test(); 
    return 0;
}

